package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelo.JuegoAhorcado;
import modelo.JuegoAhorcadoDAO;
import vista.VistaAdministrador;
public class ControladorAdministrador {
	private VistaAdministrador configuracion;
	private JuegoAhorcado juego;
	public static String palabra, difi;
	private JuegoAhorcadoDAO jue;
	public static int df;

	public ControladorAdministrador(JFrame frame) {
		super();
		configuracion = new VistaAdministrador(frame);
		configuracion.setVisible(true);
		juego = new JuegoAhorcado();
		jue = new JuegoAhorcadoDAO(df);
		
		configuracion.getJCbBDificultad().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String dificultad = (String) configuracion.getJCbBDificultad().getSelectedItem();
				if(dificultad == "Facil"){
					configuracion.getJBtnPalabraFacil().setEnabled(true);
					configuracion.getJTxtOracionFacil().setEnabled(true);
					configuracion.getJBtnPalabraIntermedia().setEnabled(false);
					configuracion.getJBtnPalabraDificil().setEnabled(false);
					configuracion.getJTxtOracionIntermedia().setEnabled(false);
					configuracion.getJTxtOracionDificil().setEnabled(false);				
				}
				else if(dificultad == "Medio"){
					configuracion.getJBtnPalabraIntermedia().setEnabled(true);
					configuracion.getJTxtOracionIntermedia().setEnabled(true);					
					configuracion.getJBtnPalabraFacil().setEnabled(false);
					configuracion.getJBtnPalabraDificil().setEnabled(false);
					configuracion.getJTxtOracionFacil().setEnabled(false);
					configuracion.getJTxtOracionDificil().setEnabled(false);
				}
				else if(dificultad == "Dificil"){
					configuracion.getJBtnPalabraDificil().setEnabled(true);
					configuracion.getJTxtOracionDificil().setEnabled(true);					
					configuracion.getJBtnPalabraFacil().setEnabled(false);
					configuracion.getJBtnPalabraIntermedia().setEnabled(false);
					configuracion.getJTxtOracionFacil().setEnabled(false);
					configuracion.getJTxtOracionIntermedia().setEnabled(false);
				}
				else{
					configuracion.getJBtnPalabraFacil().setEnabled(false);
					configuracion.getJBtnPalabraIntermedia().setEnabled(false);
					configuracion.getJBtnPalabraDificil().setEnabled(false);
					configuracion.getJTxtOracionFacil().setEnabled(false);
					configuracion.getJTxtOracionIntermedia().setEnabled(false);
					configuracion.getJTxtOracionDificil().setEnabled(false);
				}
			}
		});
		configuracion.getJBtnPalabraFacil().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				char [] pal; int can = 0;
				pal = juego.arregloJuego(configuracion.getJTxtOracionFacil().getText());
				can = juego.contarEspacios(pal);
				if(can != 0){
					JOptionPane.showMessageDialog(configuracion, "La Palabra no es de Categoria Facil","Inclusion",JOptionPane.ERROR_MESSAGE);
				}
				if (can == 0 || configuracion.getJTxtOracionFacil().getText() == " " ){
					JOptionPane.showMessageDialog(configuracion, "Debe introducir una palabra","Inclusion",JOptionPane.ERROR_MESSAGE);	
				}
					
				else{
					palabra = configuracion.getJTxtOracionFacil().getText();
					difi = "facil";
					df = 1;
					try {
						jue.InsertaPalabraNueva(jue.dificultad(df), palabra);
						JOptionPane.showMessageDialog(configuracion, "La Palabra se guardo con exito","Inclusion",JOptionPane.ERROR_MESSAGE);
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				configuracion.getJTxtOracionFacil().setText("");
			}
		});
		configuracion.getJBtnPalabraIntermedia().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				char [] pal; int can = 0;
				pal = juego.arregloJuego(configuracion.getJTxtOracionIntermedia().getText());
				can = juego.contarEspacios(pal);
				if(can == 0 || can > 3){
					JOptionPane.showMessageDialog(configuracion, "La Palabra no es de Categoria Intermedio","Inclusion",JOptionPane.ERROR_MESSAGE);
				}
				else{
					palabra = configuracion.getJTxtOracionIntermedia().getText();
					difi = "medio";
					df = 2;
					try {
						jue.InsertaPalabraNueva(jue.dificultad(df), palabra);
						JOptionPane.showMessageDialog(configuracion, "La Palabra se guardo con exito","Inclusion",JOptionPane.ERROR_MESSAGE);
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				configuracion.getJTxtOracionIntermedia().setText("");
			}
		});
		configuracion.getJBtnPalabraDificil().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				char [] pal; int can = 0;
				pal = juego.arregloJuego(configuracion.getJTxtOracionDificil().getText());
				can = juego.contarEspacios(pal);
				if((can == 0 || can < 4) || can > 9){
					JOptionPane.showMessageDialog(configuracion, "La Palabra no es de Categoria Dificil","Inclusion",JOptionPane.ERROR_MESSAGE);
				}
				else{
					palabra = configuracion.getJTxtOracionDificil().getText();
					difi = "dificil";
					df = 3;
					try {
						jue.InsertaPalabraNueva(jue.dificultad(df), palabra);
						JOptionPane.showMessageDialog(configuracion, "La Palabra se guardo con exito","Inclusion",JOptionPane.ERROR_MESSAGE);
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				configuracion.getJTxtOracionDificil().setText("");
			}
		});
		configuracion.getJBtnSalir().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				configuracion.dispose();
			}
		});
	}
}


